package View;

import Model.Parameter;

/**
 *
 * @author elach_000
 */
public class BoardMap {

    public SquareView[][] map;
    public int mapWidth;
    public int mapHeight;

    public BoardMap() {
        this.mapWidth = Parameter.getWidthBoard();
        this.mapHeight = Parameter.getHeightBoard();

        map = new SquareView[mapWidth][mapHeight];

        for (int i = 0; i < mapWidth; i++) {
            for (int j = 0; j < mapHeight; j++) {
                map[i][j] = new SquareView();
            }
        }
    }

    public void initDemoMap() {

        map[0][3].setBaseTile(3);
        map[0][4].setBaseTile(3);
        map[0][5].setBaseTile(1);
        map[0][6].setBaseTile(1);
        map[0][7].setBaseTile(1);

        map[1][3].setBaseTile(3);
        map[1][4].setBaseTile(1);
        map[1][5].setBaseTile(1);
        map[1][6].setBaseTile(1);
        map[1][7].setBaseTile(1);

        map[2][2].setBaseTile(3);
        map[2][3].setBaseTile(1);
        map[2][4].setBaseTile(1);
        map[2][5].setBaseTile(1);
        map[2][6].setBaseTile(1);
        map[2][7].setBaseTile(1);

        map[3][2].setBaseTile(3);
        map[3][3].setBaseTile(1);
        map[3][4].setBaseTile(1);
        map[3][5].setBaseTile(2);
        map[3][6].setBaseTile(2);
        map[3][7].setBaseTile(2);

        map[4][2].setBaseTile(3);
        map[4][3].setBaseTile(1);
        map[4][4].setBaseTile(1);
        map[4][5].setBaseTile(2);
        map[4][6].setBaseTile(2);
        map[4][7].setBaseTile(2);

        map[5][2].setBaseTile(3);
        map[5][3].setBaseTile(1);
        map[5][4].setBaseTile(1);
        map[5][5].setBaseTile(2);
        map[5][6].setBaseTile(2);
        map[5][7].setBaseTile(2);

        map[16][4].addHeightTile(54);

        map[17][3].addHeightTile(54);

        map[15][3].addHeightTile(54);
        map[16][3].addHeightTile(53);

        map[15][4].addHeightTile(54);
        map[15][4].addHeightTile(54);
        map[15][4].addHeightTile(51);

        map[18][3].addHeightTile(51);
        map[19][3].addHeightTile(50);
        map[18][4].addHeightTile(55);

        map[14][4].addHeightTile(54);
        map[14][5].addHeightTile(62);
        map[14][5].addHeightTile(61);
        map[14][5].addHeightTile(63);

        map[17][4].addHeightTile(114);
        map[16][5].addHeightTile(115);
        map[14][4].addHeightTile(125);
        map[15][5].addHeightTile(91);
        map[16][6].addHeightTile(94);

        //water
        map[1][5].setBaseTile(85);

        map[2][6].setBaseTile(85);
        map[6][2].addHeightTile(100);
        map[7][1].addHeightTile(81);
        map[6][1].addHeightTile(81);
        map[8][2].addHeightTile(80);
        map[7][2].addHeightTile(82);
        map[6][3].addHeightTile(86);
        map[5][2].addHeightTile(88);
        map[4][2].addHeightTile(88);
        map[3][1].addHeightTile(89);
        map[4][1].addHeightTile(87);
        map[5][0].addHeightTile(93);
        
        //buisson
        map[4][5].addHeightTile(120);
        //arbre
        map[18][1].addHeightTile(133);
        map[18][1].addHeightTile(122);

        map[7][9].setCharacter(2);
    }

    public SquareView[][] getMap() {
        return map;
    }

    public void displayBoardInTerminal() {
        for (int j = 0; j < this.mapHeight; j++) {
            for (int i = 0; i < this.mapWidth; i++) {
                System.out.print(map[i][j]);
            }
            System.out.print("\n");
        }
    }
}
